# 写一个三乐购物系统 功能使用函数封装
# 1.欢迎界面
#    1. 登录
#        输入用户名和密码
#        和系统里保存的用户信息比较，判断用户和密码是否合法
#        登录失败，返回上一级
#        登录成功:
#         1.查看商品
#         2.加入购物车
#         3.结算购物车
#         4.返回上一级
#    2. 注册
#        用户名、用户密码、用户存入金额
#       用户信息固化
#    3. 退出
import json
# 固定信息存储模式，更好地进行登录判断
name_dict = {'root': {'money': 20, 'passwd': '123456'}, 'admin': {'money': 18, 'passwd': 'admin123456'}}


def welcome():
    num = input("欢迎进入三乐购物系统,请输入你想执行的操作: 1.登录/ 2.注册/ 3.退出:")
    if num == '1':
        land()
    elif num == '2':
        login()
    elif num == '3':
        print("退出系统")

    else:
        print("输入的数字不在范围内！请重新输入")
        welcome()


def land():
    """
    . 登录
        输入用户名和密码
        和系统里保存的用户信息比较，判断用户和密码是否合法
        登录失败，返回上一级
        登录成功:
         1.查看商品
         2.加入购物车
         3.结算购物车
         4.返回上一级
        :return:
    """
    name_user = ''
    reg_user = input("请输入用户名:")
    reg_passwd = input("请输入密码:")
    # 读取文件
    with open('user.txt', 'r') as f:
        content = f.read()
    # 循环遍历得到的是单个字符，将单个字符拼接起来得到字符串
    for i in content:
        name_user += i
    # 将字符串转为字典进行条件 判断
    user_dict = json.loads(name_user)
    # 判断输入的用户名是否在文件里
    for j in user_dict:
        # 如果存在，判断密码是否正确
        if j == reg_user:
            if user_dict[reg_user]['passwd'] == reg_passwd:
                print("恭喜登录成功,请输入您想进行的操作:1.查看商品 / 2.加入购物车 / 3.结算购物车 / 4.返回上一级:")
            # 密码错误，登录失败，放回上一级
            else:
                welcome()
        # 用户名不存在，登录失败，返回上一级
        else:
            welcome()


def login():
    """
     注册
        用户名、用户密码、用户存入金额
        用户信息固化
    :return:
    """
    reg_user = input("请输入用户名:")
    reg_pwd = input("请输入密码:")
    reg_money = input("请输存入金额:")
    user_dict = {reg_user: {'money': reg_money, 'passwd': reg_pwd}}
    # 将注册信息添加到文件末行中，实现用户信息固化
    with open('user.txt', 'a') as f:
        f.write(json.dumps(user_dict))


welcome()
